// 导入vue构造函数
import Vue from 'vue'
// 导入router构造函数
import Router from 'vue-router'
// 导入8个动态路由模块
import approvalsRoute from './modules/approvals'
import attendancesRoute from './modules/attendances'
import departmentsRoute from './modules/departments'
import employeesRoute from './modules/employees'
import permissionsRoute from './modules/permissions'
import salarysRoute from './modules/salarys'
import settingsRoute from './modules/settings'
import social_securitysRoute from './modules/social_securitys'
// 动态路由表数组（需要权限控制）
export const asyncRoutes = [
  departmentsRoute,
  settingsRoute,
  employeesRoute,
  approvalsRoute,
  attendancesRoute,
  permissionsRoute,
  salarysRoute,
  social_securitysRoute]
// 注册路由插件
Vue.use(Router)

/* 导入Layout架子（基础结构） */
import Layout from '@/layout'

// 静态路由表：（所有角色都可以访问的路由）
export const constantRoutes = [{
  // 登录
  path: '/login',
  component: () =>
    import ('@/views/login/index'),
  hidden: true // 当前路由在左侧菜单隐藏
},
{
  path: '/404',
  component: () =>
    import ('@/views/404'),
  hidden: true
},

{
  path: '/',
  component: Layout,
  redirect: '/dashboard',
  children: [{
    path: 'dashboard',
    name: 'Dashboard',
    component: () =>
      import ('@/views/dashboard/index'),
    // meta:控制左侧菜单
    meta: { title: 'Dashboard', icon: 'dashboard' }
  }]
}

  // 输入一个不存在的路径时

]

// todo:动态路由表（需要通过权限控制的路由）

// 创建路由实例：：
const createRouter = () => new Router({
  // 路由模式，默认是hash模式，可选值还有history历史模式
  // mode: 'history',
  // 当路由切换的时候，让页面回到最顶部

  scrollBehavior: () => ({ y: 0 }),
  // 临时合并路由表
  routes: constantRoutes
})
// 调用创建路由实例的函数，接收路由实例
// 临时让静态路由表和动态路由表合并(当下用户可以看到所有菜单)
// routes: [...constantRoutes, ...asyncRoutes]
// 写死的只开放静态路由表
const router = createRouter()

// 重置路由函数
export function resetRouter() {
  const newRouter = createRouter()
  router.matcher = newRouter.matcher // reset router
}
// 导出router实例
export default router
